package co.baiku.boot.component.shop.service.impl;

import co.baiku.boot.component.core.event.OrmWhen;
import co.baiku.boot.component.core.service.impl.ComponentServiceImpl;
import co.baiku.boot.component.shop.po.GoodsPo;
import co.baiku.boot.component.shop.service.GoodsPoService;
import co.baiku.boot.core.orm.dao.BaseDAO;

public class GoodsPoServiceImpl<D> extends ComponentServiceImpl<GoodsPo, D, Long> implements GoodsPoService<D> {

    public GoodsPoServiceImpl(BaseDAO<GoodsPo, Long> baseDAO) {
        super(baseDAO);
    }

    @Override
    public void onCreate(OrmWhen when, GoodsPo po) {
        switch (when) {
            case BEFORE:
                //判断商品名称是否存在重复
                break;
            case SUCCESS:
                //如果有分类下对商品数量的统计等，更新对应数量
                break;
            default:
                break;
        }
    }

    @Override
    public void onUpdate(OrmWhen when, GoodsPo before, GoodsPo after) {
        switch (when) {
            case BEFORE:
                //判断商品名称更新后是否存在重复
                break;
            case SUCCESS:
                //如果有分类下对商品数量的统计等，更新对应数量
                break;
            default:
                break;
        }
    }

    @Override
    public void onDelete(OrmWhen when, GoodsPo po) {
        switch (when) {
            case BEFORE:
                //检查订单中是否有待付款的，如果有则不允许删除。可以下架，等待不存在待付款订单时再删除。

                //如果购物车存在改商品,则删除

                break;
            case SUCCESS:
                //如果有分类下对商品数量的统计等，更新对应数量
            default:
                break;
        }
    }
}
